window.joListener = {};//监听对象，处理相关组件操作事件监听
/**
 * jo插件统一监听处理
 * 托管函数:
 * 1.joTabLinkProcess(sLink,sTab) 处理页签的地址
 * joListener.onTableTrClick(trEle) 表格行点击事件监听
 */
$(function(){
	//console.log("jo插件统一监听初始化...");
	/**
	 * 页签事件
	 */
	$(".joTab li").on("click", function(){
		$(".joTab li").removeClass("cur");
		$(this).addClass("cur");
		var sheet = $(this).attr("tab");//对应标签页的id
		$(".joTabSheet").css("display","none");//其他的隐藏
		$("#"+sheet).css("display","block");//选中的显示
		
		var link = $(this).attr("link");
		if(typeof(joTabLinkProcess) == "function"){//地址重写
			link = joTabLinkProcess(link,sheet);
		}
		if(jo.isValid(link)){
			if($(this).attr("loaded")){//已加载过该标签
				console.info("iframe["+sheet+"]已加载...")
			}else{
				link = replaceUrlConstants(link);
				$("iframe[id='"+sheet+"']").attr("src",link);
				$(this).attr("loaded","true");
				console.info("iframe["+sheet+"]执行加载...")
			}
		}
	});
	try{
		$(".joTab .cur").click();
	}catch(err){}
	
	/**
	 * 表格行点击着色
	 * 行点击后去除兄弟节点的着色，被点击行进行着色
	 * 若重复点击同一行，则取消该行着色
	 */
	$(document).on("click", ".table>tbody>tr", function(){
		if(typeof (joListener.onTableTrClick) == "function"){//若存在表格行点击事件监听，则调用
			joListener.onTableTrClick(trEle);
		}else{
			$(this).siblings().removeClass("tr-visited");
			if($(this).hasClass("tr-visited")){
				$(this).removeClass("tr-visited");
			}else{
				$(this).addClass("tr-visited");
			}
		}
	});

});
jo.formatUI();//格式化jo组件

//本地测试模式
if($('head>base[test="true"]').length > 0){
	var base = $('head>base[test="true"]');
	window.contextPath = jo.getDefVal(base.attr('contextPath'), base.attr('href'));
	for(var k in SYSURL){
		window[k] = jo.getDefVal(base.attr(k), window.contextPath);
		SYSURL[k] = window[k];
	}
	var token = base.attr('token');
	if(token){
		SSO_TOKEN = token;
	}
	console.info('本地开发模式,URL: %o, token: %s', SYSURL, token);
}